package com.plugin.manage.service;

import com.plugin.manage.common.RespObj;

/**
 * 用餐看板服务接口
 * 
 * @author mark
 * @date 2025-07-26
 */
public interface IMealsService {

    /**
     * 获取用餐统计信息
     * 包含今日用餐人数、昨日用餐人数以及较昨天的增长百分比
     * 
     * @return 用餐统计信息
     */
    RespObj<?> getMealStatistics();

    /**
     * 获取今日菜谱记录
     * 
     * @return 今日菜谱记录列表
     */
    RespObj<?> getTodayMenuRecords();

    /**
     * 统计最近7天就餐人次
     * 
     * @return 最近7天每日的就餐人次统计
     */
    RespObj<?> getLast7DaysMealStatistics();

    /**
     * 根据parent_id查询今日套餐菜谱
     * 
     * @return 今日套餐菜谱列表
     */
    RespObj<?> getTodayMenu();

    /**
     * 统计今日就餐方式数量（堂食、外带、送餐）
     * 根据elder_dish_record中的dinner_mode字段统计各种就餐方式的记录数
     * 
     * @return 今日就餐方式统计
     */
    RespObj<?> getTodayDinnerModeStatistics();

    /**
     * 统计今日菜品分类数量和百分比（荤菜、素菜、主食、汤品等）
     * 统计dish_ids中每个菜品ID在今天被售卖的总次数，按elder_dish_category分类计算比值
     * 
     * @return 今日菜品分类统计
     */
    RespObj<?> getTodayDishCategoryStatistics();

    /**
     * 统计今日菜品消费份数TOP5
     * 根据elder_dish_record中的dish_ids统计每个菜品在今天的出现次数，按消费次数排序取前5名
     * 
     * @return 今日菜品消费份数TOP5
     */
    RespObj<?> getTodayDishConsumptionTop5();

    /**
     * 统计今日套餐消费次数TOP5
     * 根据elder_dish_record中的set_id统计每个套餐在今天的出现次数，按消费次数排序取前5名
     * 
     * @return 今日套餐消费次数TOP5
     */
    RespObj<?> getTodayMealSetTop5();
}
